﻿#define _CRT_SECURE_NO_WARNINGS
// ↑ 将本行在代码放在第一行可以避免 scanf的报错问题（仅在VS编译器里）
//【进阶】53.排序4 c++开头



//【头文件包含】
#include"Sort.h"
#include<time.h>


//【结构体声明】

//【函数声明】
void Test1();
void Test2();


//【主函数】
int main()
{
	//Test1();
	Test2();
	return 0;
}

//【函数定义】
/*测试用例*/void Test1()
{
	printf("****测试用例开始****\n");
	MergeSortFile("SortText.txt");
	printf("****测试用例结束****\n\n");
}

/*测试用例*/void Test2()
{
	printf("****测试用例开始****\n");
	int arr[] = { 1,4,5,6,2,3,4,8,1,34,12,23,2,3,4,6,4,6,2,5,43,7,4 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	CountSort(arr,sz);
	PrintArr(arr,sz);
	printf("****测试用例结束****\n\n");
}


//【笔记】
//53.排序：使一串记录按其中某个关键字大小递增或递减的操作
	//非比较排序 
		// 基数排序：
		// 计数排序：找到数组最大值，遍历原数组统计数组中每个数出现次数，然后按顺序输出对应次数覆盖修改原数组
			//该排序虽然高效，但是浪费空间 ,只适用于整形，时间复杂O(N+range)空间复杂度0(range)
	//排序的稳定性指排序后数组中相同的值的相对顺序不变就是稳定否则就是不稳定
//稳定排序：冒泡、简单选择、直接插入、归并
//不稳定排序：希尔、堆、快速排序

